Throughput in multi-rate wireless networks using variable-length packets and other techniques

ABSTRACT

In a wireless communication network having a plurality of devices operating at different data rates that contend for access to the network, a method is provided that assigns network access parameters to one or more of the devices so as to control throughput on the network. Examples of network access control parameters are the maximum data packet size and the contention window size. Generally, the network access control parameter for slower data rate users is configured so that they do not occupy the network a disproportionate amount of time compared to faster data rate users.

This application is a continuation of U.S. Non-Provisional patentapplication Ser. No. 10/065,494, filed Oct. 24, 2002 which claimspriority to U.S. Provisional Patent Application No. 60/330,755, filedOct. 30, 2001, the entirety of which is incorporated herein by referenceas if fully set forth.

BACKGROUND OF THE INVENTION

The present invention is directed to wireless networks, and particularlyto optimizing throughput among multiple data rate communication devicesin a wireless network.

In a wireless network, such as a wireless local area network (WLAN) thatuses the IEEE 802.11x standard, communication devices that act as whatis called in 802.11 parlance, stations (STAs), may use multiple datarates (e.g., 1, 2, 5.5, 11, . . . 54 Mbps) when communicating with acommunication device that acts as what is called in 802.11 parlance, anaccess point (AP). The data rate assigned to a STA may be based on itsproximity to the AP. For example, devices closer to the AP typicallyoperate at faster data rates than devices further from the AP. Eachfrequency channel of 802.11 may be shared, via carrier sense multipleaccess/collision avoidance (CSMA/CA) procedures, by multiple STAs usingvarious data rates. Each STA contends for use of the frequency channeland, on acquiring use of the channel, transmits a single MAC ServiceData Unit (MSDU). While a given STA is transmitting an MSDU, no otherSTA is allowed to transmit on the channel. Additionally, the STA ownsthe channel until it has completely transmitted the MSDU. Aftertransmitting an MSDU, the STA must contend again for use of the channelbefore sending another MSDU.

Currently, the 802.11 standard places no restrictions nor does itprovide a recommendation for a data packet length, other than limitingthe maximum MSDU size to no more than 2304 bytes. The requiredtransmission time for a data packet of a given length is proportionallylarger for low data rate users than for high data rate users.Consequently, the low data rate users may have a disproportionatelyhigher percentage of medium access time than high data rate users, whichlimits throughput for the high data rate users.

To illustrate this, with reference to FIG. 1, an exemplary system 10 isshown having N STAs 120, where N=20. For example, there are ten 1 MbpsSTAs and ten 54 Mbps STAs on a CSMA/CA WLAN. Each STA is attempting toupload a file to (or download a file from) a server via the WLAN AP 110.It is assumed each STA 120 uses a 2 KB MSDU size. To simplify theanalysis, assume zero MAC overhead (i.e., MAC header, acknowledgements,DIFS, etc. take zero time). The following relations hold for thisexample.

Ts=Packet duration for “slow” users=2048*8/1=16,384 μs

Tf=Packet duration for “fast” users=2048*8/54=303 μs=Ts/54

Throughput per slow user: 1 Mbps*54/55/10≅100 kbps

Throughput per fast user: 54 Mbps*1/55/10≅100 kbps

Average throughput per user: 100 kbps

As this example shows, the slow users take much longer to transmit theirpackets than the fast users, effectively negating the benefit of thehigher data rate for the fast users. More specifically, the slow usersspend 54 times more time on the medium than fast users in this scenario(since it takes them 54 times longer to transmit or receive a 2 KBpacket) assuming that all users contend for the medium using CSMA/CAprocedures for the transmission of each packet. Slow users own themedium 54/55=98% of the time, whereas fast users own the medium 1/55=2%of the time. The results would be the same if a MSDU size of 500 bytes,for example, were used.

To generalize, assume there are Ns low data rate users and Nf high datarate users of a CSMA/CA WLAN. The following relations are given:

Ts=M*Tf=Packet duration for a slow users

Tf=Packet duration for fast users

M=ratio of highest data rate to lowest data rate for the users on thenetwork (Rf/Rs)

Rf=Fastest user data rate

Rs=Slowest user data rate

Throughput for slow data rateuser=Rs*Ts/(Ns*Ts+Nf*Tf)=Rs*M/(Ns*M+Nf)≈Rs/Ns (since Ns*M usually >>Nf)

Throughput for fast data rate=Rf*Tf/(Ns*Ts+Nf*Tf)=Rf/(Ns*M+Nf)≈Rs/Ns(again, assuming Ns*M>>Nf).

Average throughput per user ≈Rs/(Ns).

In summary, all STAs experience substantially the same throughput equalto the slowest user's data rate divided by the number of slow users. Thehigh data rate users do not realize the benefit of their faster datarates because throughput is limited by the slowest user data rate.

In more extreme cases, the overall performance of a wireless network cancollapse as additional users, particularly slow users, access thenetwork. FIG. 2 illustrates a plot of access time of a user versuspercent utilization of the network. Even at zero percent utilization,there is a minimum access time to for a user to obtain access to thenetwork. As more users access the network, the access time increases,and at some point (approximately 50% utilization), the access timeincreases exponentially. FIG. 2 illustrates that throughput for allusers on the network can become unacceptable as the network utilizationincreases, particularly with slow users, and at some the network maycollapse completely. Network administrators struggle with techniques toprevent network collapse.

Solutions are needed to contend with the foregoing challenges inmaintaining stability of a wireless network with multiple data rateusers.

SUMMARY OF THE INVENTION

According to the present invention, systems and methods are provided toimprove system throughput of a wireless network by adjusting a networkaccess parameter used by devices when accessing the network. Onetechnique is to assign packet lengths to each user in such a way as toensure that all users transmit packets of equal duration. The packetduration for all users is set based on a maximum packet size at thefastest user data rate in the network. Thus, under this methodology,fixed-duration transmissions (from the STA to the AP or from the AP tothe STA) are enforced (which implies different packet lengths fordifferent user data rates) instead of fixed-length packets(duration=time, length=bytes) for each user. In practice, the user-ratespecific packet size, determined for each user based on the desiredfixed-duration, is set as a maximum packet size for that user. However,the user does not always have to transmit at that maximum packet size. Apacket size of less than the maximum packet size may be used, which willfurther benefit average throughput.

An enhancement to the fixed-duration/variable packet length technique isto dynamically change the packet lengths of the network users to adjustfor changing conditions in the network. For example, the data rate ofthe fastest user may change as users go on and off the network. The APmay periodically determine changes in the fastest user data rate andsend out messages to the users to adjust the maximum length if required.

Another technique to optimize throughput in the network is to fix thepacket length but vary the contention window (CW) size for each user, sothat low rate users will be less likely to win a channel contention thanhigh rate users.

Still another method to improve throughput in the network is toconditionally engage or disengage one of the variable packet length orvariable contention window algorithms described herein based on measurednetwork conditions for the fast users. The AP monitors user throughput,offered network load, or other conditions for fast rate users, and whenit is determined that throughput for fast users is being significantlyaffected, the AP engages one of the variable packet length methodssummarized above in order to give the fast rate users better throughput.

The above and other objects and advantages will become more readilyapparent when reference is made to the following description taken inconjunction with the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of an exemplary wireless communication systemwhere throughput improvement techniques may be useful.

FIG. 2 is a plot showing access time versus percent utilization of awireless network.

FIG. 3 is a block diagram of an access point device and a station devicethat may be configured to employ the throughput improvement techniques.

FIG. 4 is a flow chart of a network monitoring and access parameteradjustment process.

FIG. 5 is a plot of throughput versus offered load of a wireless networkthat illustrates the effects on throughput as the packet length isadjusted.

FIG. 6 is a ladder diagram illustrating a process for communicating andexecuting a change in the maximum packet length used by devices in awireless network.

DETAILED DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an exemplary system where a wireless local areanetwork (WLAN) 100 consisting of an access point (AP) 110 and aplurality of stations (STAs) (STA₁-STA_(N)) 120. The AP 110 mayinterconnect to a wired LAN 130, and ultimately, through a router 140,to the Internet 150.

FIG. 3 illustrates an exemplary AP 110 and a STA 120. In general, the AP110 comprises a control processor 112, a baseband signal processor 114and a radio transceiver 116. (It should be understood that the controlprocessor 112 and the baseband signal processor 114 may be implementedon a single processing device.) The AP 110 receives signals from, andtransmits signals to, the STAs 120 via one or more antennas 118. Theprocessor 112 routes the received data from the STAs, and also directsoutgoing data to the appropriate STA. In addition, the processor 112 inthe AP 110 may execute a network throughput control process, describedhereinafter, to control the average throughput on the WLAN 100. Anetwork administration computer 160 may be coupled to the AP 110(through the wired LAN 130 shown in FIG. 1) to provide supervisory andadministrative control of the WLAN 100. Thus, the network throughputcontrol process may be executed on the network administration computer160 in addition to, or instead of, the AP 110. The AP 110 sends networkaccess control parameter messages to one or more STAs 120. The networkaccess control parameter message informs the STA 120 to alter a networkaccess parameter, described hereinafter. The term base device is a moregeneral term that refers to an access point, or in the context of anon-WLAN type of wireless network, another wireless device that may befixed and may have additional computing power and supervisory controlover the access to the network by other devices.

A STA 120 comprises a control processor 122, a baseband signal processor124 and a radio transceiver 126. The STA 120 transmits and receivessignals via the antenna 128. When the STA 120 receives a network accesscontrol parameter message from the AP 110, the processor 122 processesthe message to alter a corresponding network access control parameter. Amemory 129 in the STA 110 may be used to store the updated networkaccess control parameter.

The Packet Length Network Access Control Parameter

One type of network access control parameter that can be adjusted is themaximum packet length that can be used by a communication device whenaccessing the network. The maximum packet length parameter determineshow much network time it takes for a device to transmit a basic unit ofdata called the packet, dependent on the data rate of the device. Onemethod to equalize the use of the network is to require all devices totransmit packets of a fixed time duration (as opposed to a fixed packetlength), regardless of the data rate of the device. To do so, slowerdata rate devices would have shorter maximum packet lengths compared tohigher data rate devices. As a result, fast data rate devices can use apacket length up to the maximum packet length available for the networkand slow data rate devices will be limited to a smaller maximum packetlength so that they do not occupy the network at the expense of thefaster rate devices. The packet length Li for device (i) isLmax/(Rf/Ri), where Rf is the rate of the fastest device, Ri is the rateof the given device (i) and Lmax is the maximum packet length for anydevice on the network. The throughput analysis using the fixed-durationmethodology is as follows. (The terms “device” and “user” are usedinterchangeably.)

Throughput per slow user=Rs/(Ns+Nf)

Throughput per fast user=Rf/(Ns+Nf)

Average throughput per user=(Ns*Rs+Nf*Rf)/(Ns+Nf)²

The net throughput per user is equal to the peak throughput per user(i.e., throughput that each user would see if he/she were the only useron the channel) divided by the total number of users sharing thechannel. This is exactly the throughput that each user would see ifthere were only one data rate supported on the channel (i.e., thatuser's data rate) and the same number of total users. Substantialimprovement in average net throughput per user is achieved over thefixed-length approach for typical operating scenarios, and it is a moreequitable way to distribute bandwidth among multiple users than thefixed-length approach.

Applying the fixed-duration packet technique to the example introducedabove in conjunction with FIG. 1, the packet length for the fast (54Mbps) users is set to the MSDU length of 2 KB to give the fast users thegreatest benefit of their faster data rate. Thus, Lmax is 2 k bytes, or2048 bytes, and the maximum packet length for the 1 Mbps user is2048/(54/1), which is 38 bytes.

Using a variable packet length with the fixed-duration constraint, thethroughput analysis for the example is:

Throughput per slow user=1 Mbps/20=50 kbps

Throughput per fast user=54 Mbps/20=2.7 Mbps

Average throughput per user=(10*1+10*54)/(10+10)²=1.375 Mbps

The use of fixed-duration transmissions (which means the packet sizeused by the STAs are of variable-length) in this way allows thehigh-rate STAs to enjoy the benefits of their higher data rate(approximately 14 times improvement in average throughput per userrelative to fixed-length approach). Every user is given the same amountof time (303 μs) to access the medium for a data packet, which is a moreequitable way to partition the bandwidth.

Generally, assuming there are M data rates in the system, R1<R2< . . .<RM, and Ni STAs/users at rate Ri, i=1, . . . , M. The maximum packetlength for rate RM users is set to LM=Lmax, where Lmax is the maximumsupported MSDU size in bytes (for example, Lmax=2304 bytes for 802.11).The maximum packet length for rate Ri users is set to Li=Lmax/(RM/Ri),i=1, . . . , M−1. This ensures that all packets are of equal duration,namely, Lmax/RM.

The AP may use these same principals when selecting a packet length fortransmitting data to a STA.

The Contention Window Network Access Control Parameter

An alternative method which can be used to achieve similar performanceas the fixed packet-duration approach (i.e., gives each user equalmedium access time) is to keep the packet length fixed but vary thecontention window (CW) size for each user, making it less likely for lowrate users to win a channel contention than the high-rate users. Tocontend for a busy channel in an IEEE 802.11 WLAN, each STA generates arandom integer between 0 and CW and stores the result in a back-offcounter. The back-off counter is decremented whenever the channelremains idle for one time slot period (defined in the 802.11 standard),and transmits a packet when the counter hits zero. The interval (0,CW)is referred to as a contention window in 802.11. To apply the aboveprocedure to the previous example, all users would be allowed totransmit 2 KB MSDUs, but the contention window for the low rate users,CWlow, may be set to 54 times larger than the high rate users, CWhigh,and thus the high-rate users would be 54 times more likely to transmit apacket than the low rate users. The parameter CW would be a MIB objectstored locally for each STA.

Dynamic Adjustment of Network Access Control Parameters

With reference to FIGS. 4 and 5, a process 300 is shown wherebyconditions of the WLAN are monitored and changes are automatically madeto the network access control parameters of devices in the network. Instep 310, the AP monitors network conditions. For example, by receivingdata from various STAs in the network, the AP can determine the accesstime to the network for each STA, and determine the average throughputof the network.

As shown in FIG. 5, assume a shared medium is used to support users aand b, where a and b can access the medium at different data rates, Raand Rb respectively. Typical throughput versus offered load for usersoperating at only data rates of Ra and Rb is shown as Ta and Tb,respectively. When both types of users access the system, and theirpackets are equal in size, a throughput of Tf is obtained; the slowerdata rate dominates the throughput curve when access from the a and busers is equally likely. The primary effect beyond the knee of thethroughput curve is an exponential increase in delay for users trying toaccess the medium, wherein the network is said to be overloaded. Onemechanism to reduce the access time, for at least some users, is to notallow the lower rate users to access the channel, which moves thethroughput curve to Tb. A better approach that allows a and b users tostill access the system and is sensitive to access delay is to vary thepacket lengths for different data rate users as the combined offeredload starts to generate exponentially increasing access times.Throughput curves of Ti, Tj, and Tk can be achieved as the packet lengthof the lower rate user is further reduced relative to those of thehigher rate users.

Thus, the methodology involves (in step 330) varying the packet lengthfor users in the network in response to detecting conditions in thenetwork (in step 310) that indicate that the offered load begins toresult in increasing access times. The network is initialized in the“normal” state, i.e., all users are free to use packets of up to 2 KB inlength (the maximum packet length). In step 310, the AP measuresthroughput for users in the network, particularly faster data rateusers. If the AP determines (in step 320) that these users are achievingpoor throughput (based on programmable thresholds depending on thenumber of users in the network, data rates, etc.), the AP will engageone of the schemes described above and transmit messages to the users toadjust their packet lengths (or contention window size). The longer thetime required on the network between two different uses, the greater thedifference in packet lengths for those users. In the event the APdetermines that conditions in the network change to a state that isacceptable for fixed packet length operation, the AP will accordinglysend messages to the users to reset the packet length to the fixedmaximum packet length for all users (or return to the normal contentionwindow size).

Alternatively, in step 310, the AP may monitor the data rate of theusers on the network. The AP may periodically, or on occasion, determineif the fastest user operating in the network has changed. As users go onand off the network, network conditions change. What was previously thefastest user data rate may change when that fast user goes off thenetwork. Similarly, slower rate users will come and go on the network.In step 320, the AP determines that a change has occurred in the networkthat affects network throughput. For example, the AP determines whetherthe fastest user in the network has changed, or whether the ratio (fastto slow) of data rate users in the network has changed sufficiently tojustify a change to the maximum packet length or contention window. Thenin step 330, the AP executes a change to a network access controlparameter, such as the maximum packet length or contention window size.

In step 330, the AP may compute a new maximum packet length (Li) foruser (i) according to the mathematical relationship provided above, butusing information for the current fastest data rate user on the network.This provides for more dynamic and flexible control of throughput.

FIG. 6 shows a process 400 for updating a network access controlparameter (e.g., maximum packet size or contention window size) fordevices operating on the network. An IEEE 802.11 is the exemplarywireless network, but it should be understood that a similar process maybe used in any other wireless network. In the context of 802.11, amethod for updating maximum MSDU size at each STA involves adjusting themaximum transmit packet size at the Data-Link Protocol Interface (DLPI)between the network layer (e.g., IP) and the Logical Link Control (LLC)layer. This can be performed manually by a network administrator byupdating the maximum packet size at each STA (via a message sent by theAP), or automatically by the AP sending an over-the-air messagedirecting each STA to update its maximum packet size. No change to the802.11 standard rules is required.

In general, in step 410, when the network layer in a STA sends an MSDU(a packet to be sent) using a MA-UNITDATA.request primitive to the LLCDriver, the LLC driver compares the size of the MSDU with the internallystored maximum packet size. Unless configured to be smaller than themaximum size, normally, the LLC Driver will respond in step 420 with aMA-UNITDATA-STATUS.indication primitive that indicates the MSDU size isacceptable so long as it is less than the maximum packet size.

When network conditions justify, the AP, in step 430, may send a messageto a STA indicating that it should use a smaller maximum packet size inorder to limit the STA to the appropriate fixed-duration air time. Instep 440, the STA stores the updated maximum packet size internally.Now, in step 450, when the network layer in the STA sends an MSDU usingthe MA-UNITDATA.request primitive, the STA compares the size of the MSDUwith the internally stored maximum packet size. If the size of the MSDUis too large, then in step 460, the LLC Driver responds with anMA-UNITDATA-STATUS.indication primitive where the transmission status inthe primitive indicates that the submitted MSDU is too large. Thenetwork layer will be responsible for adjusting its internal state touse a smaller MSDU size and resending the data as a set of smallerMSDUs. The network layer may start with the largest acceptable MSDU(2304 bytes as currently defined in the 802.11 standard) and work itsway down until it finds an MSDU size that is acceptable to the STA. Thisconcept is similar to the concept specified in RFC1191 dealing with PathMTU Discovery. The network layer will maintain a list of sizes to tryuntil it manages to find one that can be transmitted without beingrejected. Each network layer is allowed to use whatever values it deemsnecessary in its list, as long as each entry in the list is smaller thanthe maximum MSDU size specified by 802.11.

As the limitation imposed on the packet size may be temporary, thenetwork layer will be responsible for periodically trying to send largerMSDUs to see if they will be accepted. The network layer will try thealgorithm again to see if it can get a larger MSDU accepted (again, thisis similar to the concepts specified in RFC1191). In order to allowlarger MSDUs to be sent again, the STA will maintain a timer that is setwhen it receives the notification from the AP to lower its maximumpacket size. Until the timer expires, the STA will reject MSDUs that arelarger than its internally stored value (that was received from the AP).When the timer expires, the STA will change the maximum packet size backto the maximum value specified by the 802.11 standard as represented bysteps 470 and 480. This will potentially allow maximally sized MSDUs tobe transmitted again. If the AP again sends the message telling the STAto limit its maximum packet size, the STA will reset its timer andcontinue to restrict the size of MSDUs that it will accept from thenetwork layer.

Another technique to change the effective maximum packet size used by adevice, such as a STA, is to fragment a data unit into fragments thatare less than or equal to the maximum packet size. The AP may inform aSTA to change its effective maximum packet size in the same manner asdescribed above in conjunction with FIG. 6. Using the maximum packetsize, a STA will break up a message to be sent into fragments thatsatisfy the maximum packet size, and send those fragments on thenetwork.

Referring again to FIG. 2, the techniques described herein would havebeneficial effects on the access time versus percent utilizationrelationship of a network. Assigning slower users packet lengths orcontention window parameters limits their access to the network, whichhas the effect of reducing utilization of the network, therebymaintaining lower access times to the network. In essence, practicingthese techniques would push the curve shown in FIG. 2 outward to theright, which is desirable from a network administration standpoint.

While the foregoing description has been made with respect to the IEEE802.11x standard, as an example, it should be understood that thepresent invention applies to any protocol standard governing theoperation of a wireless network that has communication devices whichoperate at different data rates, and the communication devices share oneor more frequency channels in the wireless network using carrier sensemultiple access or other similar techniques. Furthermore, it should beunderstood that the terms “faster”, “slower”, “slow”, “high” and“higher” refer to the transmission rate of a device that, either byvirtue of its design or its location in the network relative to anaccess point, can transmit up to a certain data rate.

To summarize, in a wireless communication network having a plurality ofdevices contending for access to the network, wherein the plurality ofdevices include devices that operate at different data rates whentransmitting data on the network, a method is providing for assigningnetwork access parameters to one or more of the devices so as to controlthroughput on the network. The network access parameter may be a packetlength of a contention window size.

Similarly, a wireless communication system is provided comprising aplurality of wireless communication devices capable of accessing awireless network using carrier sense multiple access procedures fortransmission of data, the plurality of devices including devices thatoperate at different data rates when transmitting data on the network,each device accessing the network according to a network access controlparameter to permit access to the network in a controlled manner.

Further, a processor readable memory medium is provided which is encodedwith instructions that, when executed by a processor (such as aprocessor in an access point or in a network administration computer),cause the processor to perform steps of determining the data rate withwhich each of a plurality of wireless devices access a wireless network;and assigning a network access parameter for one or more of the wirelessdevices so as to control throughput on the wireless network.

Further still, a wireless communication device is provided, whichoperates in a wireless network that employs carrier sense multipleaccess procedures. The device comprises a radio transceiver thattransmits and receives radio frequency signals via the wireless network;and a processor that supplies signals to be transmitted by the radiotransceiver and processes signals that are received by the radiotransceiver, wherein the processor generates packets of data fortransmission via the radio transceiver according to a network accesscontrol parameter configured to control throughput on the wirelessnetwork.

The above description is intended by way of example only.

1. In a wireless communication network having a plurality of devicescontending for access to the network, wherein the plurality of devicesinclude devices that operate at different data rates when transmittingdata on the network, a method comprising dynamically assigning networkaccess parameters to one or more of the devices so as to controlthroughput on the network, the parameters including a contention windownetwork access control parameter by which a longer contention windowinterval is assigned for low data rate devices and a shorter contentionwindow interval is assigned for high data rate devices, whereby thecontention window interval is a maximum duration for a back-off counterthat is decremented each idle time slot until reaching zero at whichtime the device attains access to the network and transmits a datapacket.
 2. The method as in claim 1, further comprising an access pointin the network detecting increased access times for the devices anddetermining an unacceptable average throughput of the network, wherebythe access point sends messages to the devices to adjust the networkaccess parameter for a longer contention window size.
 3. The method asin claim 2, further comprising the access point detecting decreasedaccess times for the devices and determining an acceptable averagethroughput of the network, whereby the access point sends messages tothe devices to adjust the network access parameter to return to a normalcontention window size.
 4. The method of claim 1, and further comprisingthe step of detecting when a device goes on or off the network, and inresponse thereto, modifying the network access parameters of one or moredevices.
 5. A wireless station (STA) contending for access to a networkaccess point, comprising: a logical link control (LLC) layer configuredto receive a message from the access point directing an update to amaximum transmit packet size parameter and to compare an intendedtransmit packet size to the maximum transmit packet size parameter; anda network layer configured to send a data transmission request primitiveindicative of the intended transmit packet size to the LLC layer and toreceive data transmission response primitive from the LLC layerindicative of whether the intended transmit packet size is smaller thanor greater than the maximum transmit packet size parameter; whereby ifthe intended transmit packet size is greater than the maximum transmitpacket size parameter, the network layer reduces the size of thetransmit packet to a size less than the maximum packet data sizeparameter.
 6. The STA as in claim 5, further comprising a memory tostore the maximum transmit packet size parameter.
 7. The STA as in claim5, further comprising a timer that is set once the message is receivedfrom the access point to reduce the maximum transmit packet sizeparameter, whereby upon expiration of the timer after a fixed duration,the network layer changes the intended transmit packet size back to aninitial value that is greater than the reduced transmit packet.